#ifndef __GL_COMPONENT
#define __GL_COMPONENT

#define TWO_PI PI*2.0
#define HALF_PI PI/2.0

class CCamera;
class CWorld;

class OGLWindow
{
private:
	int m_windowWidth;
	int m_windowHeight;

	float m_angle;

	CCamera *gameCamera;

	CCamera *OnGetCamera();
	CWorld *gameWorld;
	CWorld *OnGetWorld();
	void endGameLogic();
public:
	OGLWindow();
	virtual ~OGLWindow();

	bool Init();
	bool Shutdown();

	void SetupProjection(int width, int height);
	void Prepare();
	void Render(float deltaTime);
	int mouseX;
	int mouseY;
	float mouseSensitivity;

	int GetMouseX(LPARAM lParam);	// get true mouse coordinates
	int GetMouseY(LPARAM lParam);
	void OnMouseMove(int x, int y);
	void OnKeyDown(int nVirtKey);
	void OnKeyUp(int nVirtKey); // Ian Bell - 12/3/2012
	void OnMouseDownL(int x, int y);
	void OnMouseUpL(int x, int y);
	void OnMouseDownR(int x, int y);

	void draw2D();
	
};
#endif